1
แนวคิด 'ทุกอย่างเป็นไฟล์'
AI031Lesson 10
00:00

ในระบบปฏิบัติการลินุกซ์ การใช้ "ทุกอย่างเป็นไฟล์" แนวทางการสร้างภาพจำจะแปลงแหล่งข้อมูลอินพุต/เอาต์พุตทั้งหมด — จากไฟล์ปกติ ไปจนถึงเครือข่าย โซเก็ต—ให้กลายเป็นลำดับไบต์แบบเดียวกัน ทำให้ได้รับอินเทอร์เฟซเดียวกัน ช่วยให้สามารถจัดการ การอ่านเขียนระดับระบบ เพื่อจัดการกับ กระบวนการเซิร์ฟเวอร์ และ กระบวนการไคลเอนต์ การทำธุรกรรมผ่าน โปรเซสเซอร์หลายคอร์.

โมเดลแบบรวมศูนย์

ไม่ว่าโปรแกรมจะเข้าถึง ไฟล์ปกติ, ไดเรกทอรี, หรือฮาร์ดแวร์เช่น อะแดปเตอร์เครือข่ายมันจะใช้ตรรกะเดียวกัน ตามที่เห็นใน โครงสร้างฮาร์ดแวร์ (รูปที่ 11.2), ระบบปฏิบัติการเชื่อมระหว่างหน่วยประมวลผลและหน่วยความจำกับอุปกรณ์ผ่านทางบัสอินพุต/เอาต์พุต โดยจัดการเครือข่ายเหมือนไฟล์ เพื่อให้การทำงานขนานบนโปรเซสเซอร์หลายคอร์ง่ายขึ้น ความสามารถในการทำงานพร้อมกันบนโปรเซสเซอร์หลายคอร์.

สถาปัตยกรรมบัสระบบ/หน่วยความจำCPUสะพานอินพุต/เอาต์พุตอะแดปเตอร์เครือข่าย

การอ่านเขียนที่ทนทานและข้อมูลเมตา

เพื่อจัดการกับ จำนวนข้อมูลที่ส่งกลับน้อยกว่าที่ร้องขอ (เมื่อจำนวนไบต์ที่ร้องขอ $k$ มากกว่าหรือเท่ากับจำนวนไบต์ที่มีอยู่ $m$) แพ็กเกจ Rio (การอ่านเขียนที่ทนทาน) ให้บริการ rio_readinitb สำหรับ การอ่านข้อมูลแบบเก็บไว้ชั่วคราว. ข้อมูลเมตาจัดการผ่านทาง statในขณะที่สิทธิ์การเข้าถึงเช่น O_RDWR และ S_IROTH ถูกจำกัดโดย umask.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>